extends 基础状态


@export var 玩家:玩家节点

@onready var 玩家属性节点: Node = $"../../玩家属性节点"

func 进入状态() -> void:
	super.进入状态()
	QuanJuDebug.玩家状态机更改.emit(self.name)
	玩家.velocity.y = 玩家.跳跃高度
	pass


func 退出状态() -> void:
	super.退出状态()
	pass


func 渲染帧更新触发(_delta: float) -> void:
	super.渲染帧更新触发(_delta)
	
	pass


func 物理帧更新触发(_delta: float) -> void:
	super.物理帧更新触发(_delta)
	#玩家的移动脚本。
	var 移动速度 = 玩家.移动速率 * 玩家.当前移动速度
	if 玩家.移动向量:
		玩家.velocity.x = 玩家.移动向量.x * (移动速度 *玩家属性节点.移动速度加成)
		玩家.velocity.z = 玩家.移动向量.z * (移动速度 *玩家属性节点.移动速度加成)
	else:
		玩家.velocity.x = move_toward(玩家.velocity.x, 0, (玩家.当前移动速度 * 玩家属性节点.移动速度加成))
		玩家.velocity.z = move_toward(玩家.velocity.z, 0, (玩家.当前移动速度 * 玩家属性节点.移动速度加成))
	#当玩家接触地面时，进入待机状态。
	if 玩家.is_on_floor():
		if 玩家.移动向量==Vector3.ZERO:
			玩家_状态机.切换状态("待机")
		else :
			玩家_状态机.切换状态("走动")
	pass
